<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>匿名函数-函数表达式</title>
</head>

<body>
  <script>
    // 匿名函数 
    // 1. 函数表达式
    /*
     语法:
     let 变量名 = 匿名函数
     let 变量名 = function () {

     }

     调用:
     变量名()

     注意点:
      1) 其实函数也是一种数据类型, 属于引用数据类型 typeof
      2) 函数表达式必须先定义后使用
      3) 函数表达式的参数使用和具名函数一致
    */
    //  1) 其实函数也是一种数据类型, 属于引用数据类型 typeof
    // let sum = function () {
    //   console.log('我是匿名函数中的函数表达式')
    // }
    // sum()
    // console.log(sum()) // undefined
    // console.log(typeof sum) // function

    // 2) 函数表达式必须先定义后使用
    // console.log(num) //  Cannot access 'num' before initialization
    // let num = 100

    // fn() //  Cannot access 'fn' before initialization
    // let fn = function () { }

    // 3) 函数表单式的参数使用和具名函数一致
    let sum = function (num1 = 0, num2 = 0) {
      return num1 + num2
    }

    let res = sum(100, 200)
    console.log(res)

  </script>
</body>

</html>